[原創(chuàng)]從中間件廠商的角度看EJB3標(biāo)準(zhǔn)
摘要: 閱讀全文
2008-06-29 22:28 作者: david.turing【評論:1】【閱讀:3194】
主從分解而不是正交分解
摘要: 說到分解,很多人心中的意象大概只有正交分解。正交分解無疑是最重要的一種分析方法,它也是所謂“分而治之”思想最常見的實現(xiàn)策略。但是正交分解一般潛在的假定是分解后的子部分是大致均衡的,它們是相對具有獨立價值的,可以彼此脫離獨立發(fā)展。這是分解后實現(xiàn)系統(tǒng)解耦的重要原因。http://canonical.javaeye.com/blog/3388... 閱讀全文
2008-05-26 00:41 作者: canonical【評論:0】【閱讀:1745】
將Spring用于高并發(fā)環(huán)境的隱憂
摘要: Spring一個關(guān)于Lock Contention的Bug引起我對Spring代碼質(zhì)量的憂慮 閱讀全文
2008-04-19 09:47 作者: david.turing【評論:21】【閱讀:11121】
java NIO: selector 機制分析
在學(xué)習(xí)IBM的那個NIO教程時發(fā)現(xiàn),異步IO這部分的代碼居然有個嚴(yán)重問題。
即client突然中斷 tcp連接時。服務(wù)端會進入一個令人崩潰的無限循環(huán)。
后來發(fā)現(xiàn)其實是因為selector在tcp連接已經(jīng)斷開時,還是能夠select()出OP_READ狀態(tài)的SocketChannel的SelectedKey。
這時需要通過Channel讀取數(shù)據(jù)到buffer的過程時的返回值來判斷。
這個反回值其實就是讀取的字節(jié)數(shù)。該數(shù)字為0時說明就是一般的沒有數(shù)據(jù)可讀取,而當(dāng)為-1時其實表示底層tcp已經(jīng)斷開了。(但IE的連接有點不同,read時直接給出Exception,反正這些情況都要判斷了.)
之后又想到,那如何注銷selector與SocketChannel之間的關(guān)聯(lián)呢?selector內(nèi)部基本的運作是怎么樣的呢? javadoc中寫的是key.cancel()方法。socket的close()在windows似乎也有一樣的功能。
這里可以用兩張圖來表示。
2008-04-06 21:03 作者: wfeng007【評論:3】【閱讀:2990】
再讀“向依賴關(guān)系宣戰(zhàn)”后的一些質(zhì)疑。。。
最早看到“向依賴關(guān)系宣戰(zhàn)”這篇文章是在《程序員》雜志上的。當(dāng)時流行討論ioc di等概念,這篇文章一出,似乎已經(jīng)將這些混亂的東西講清楚了。我就是從這篇文章開始理解IoC阿、DI的概念的。
現(xiàn)在看來這篇文章確實比較詳細,但是反復(fù)看的話似乎感覺比較羅嗦。而且通過這兩年的實踐過后,我發(fā)現(xiàn)其實這幾個概念在描述時還是有偏差的。
下面有些質(zhì)疑之處:
1。 IoC與DI,馬丁同學(xué)提出的依賴注入。。這個名詞表面上怎么看都和控制反轉(zhuǎn)扯不上關(guān)系。但是他又說“。。。。應(yīng)該叫DI”。結(jié)果所有人就把DI與IoC等同,甚至就把DI當(dāng)作IoC的一個別名來用。。。
我到感覺DI與IoC是指同以概念的不同方面。DI強調(diào)的是“依賴的形成”即,框架或容器如何得到需要運行的“實現(xiàn)(implements)”的。而IoC本身概念是強調(diào)整體主控權(quán)與“庫”調(diào)用方式相反。即由框架或容器主導(dǎo)主控權(quán)?;蛘哒f依賴于控制權(quán)相反。
2。IoC與依賴倒置。
文中似乎沒有就兩者關(guān)系進行詳細說明。
個人感覺IoC其實就是以依賴倒置為基礎(chǔ)的。IoC是在特定環(huán)境中的DI特例,并且關(guān)注到了“實現(xiàn)”與“使用者”依賴關(guān)系產(chǎn)生的問題,(因為事實上調(diào)用時還是存在依賴關(guān)系的。)所以需要有“注冊”這個過程。但是IoC并沒有強調(diào)“注冊”。
2008-03-17 15:14 作者: wfeng007【評論:0】【閱讀:559】
如何理解嵌套事務(wù)(Nested Transaction)
摘要: 介紹nested transaction的概念 閱讀全文
2008-03-04 12:38 作者: david.turing【評論:4】【閱讀:10294】
WebMVC之前世.今生
摘要: 所謂WebMVC即Model2模型是目前Web開發(fā)領(lǐng)域的主流模型,Struts/Struts2框架是其典型實現(xiàn)。在概念層面上,這種程序組織模型是怎樣建立起來的?與其他Web開發(fā)模型(如面向?qū)ο竽P?具有怎樣的聯(lián)系? 它未來可能的發(fā)展方向在哪里? 結(jié)合Witrix開發(fā)平臺的具體實踐,基于級列設(shè)計理論我們可以看到一條概念發(fā)展的脈絡(luò)。http://canonical.javae... 閱讀全文
2008-02-18 22:02 作者: canonical【評論:0】【閱讀:1824】
(轉(zhuǎn))什么才是軟件開發(fā)的葵花寶典?
摘要: 中國人大都喜歡用武俠小說來比較軟件開發(fā),但是在實戰(zhàn)武功中,只有葵花寶典才是最厲害的,也只有掌握了葵花寶典,才能稱為"不敗"。 但什么才是軟件開發(fā)的葵花寶典? 讓我們先從一些現(xiàn)象出發(fā)。我們的前提是,軟件開發(fā)是一項智力密集型勞動。對于智力密集型勞動,我們觀察到的現(xiàn)象是,個體的表現(xiàn)差異很大,團隊的表現(xiàn)差異很大,組織的表現(xiàn)差異很大,國家的表現(xiàn)差異很大。這不象體力占主要的勞動,象百米王跑百米... 閱讀全文
2008-02-03 14:46 作者: 冷面閻羅【評論:11】【閱讀:2656】
Oracle收購BEA——如何看待J2EE中間件的價值
摘要: Oracle終于收購了BEA了http://www.oracle.com/bea/index.htmlhttp://biz.yahoo.com/ap/080116/oracle_bea.html新一輪收購,其實最值得關(guān)注的是WebLogic/Tuxedo兩個拳頭產(chǎn)品,而作為一直缺乏中間件領(lǐng)頭產(chǎn)品的Oracle公司,這一次又重新開始瓜分市場,微軟/IBM/SAP都會面臨直接的強有力的挑戰(zhàn)。整個事件中... 閱讀全文
2008-01-16 22:39 作者: david.turing【評論:11】【閱讀:6120】
C++配置管理
摘要: 自從離開學(xué)校就基本上不再使用C++了,最近卻又因為項目上的原因重新走入這一迷失的世界, 感覺很是缺乏一些順手的工具。首先就是做配置管理有點麻煩, 因為缺乏反射機制, 無法直接映射, 所以一般需要手工書寫配置設(shè)置功能. 我們希望配置類在配置階段能夠支持動態(tài)屬性名, Code highlighting produced by Actipro CodeHighl... 閱讀全文
2008-01-12 20:58 作者: canonical【評論:0】【閱讀:1803】
關(guān)系模型與ORM
摘要: 關(guān)系數(shù)據(jù)庫模型在理論上主要解決的是消除數(shù)據(jù)冗余的問題。關(guān)系模型的數(shù)學(xué)基礎(chǔ)是所謂的集合論,而集合的基本含義正是一組具有某種原子性的互不相同的元素。面向?qū)ο蠹夹g(shù)是對相關(guān)性進行局域化的一種手段(相關(guān)的數(shù)據(jù)和操作聚集到同一對象名義下),在這一局域化過程中,相同的元素被識別出來,成為獨立的對象。從某種意義上說,關(guān)系模型與對象模型是殊途同歸的過程,是從不同側(cè)面對同一事物的... 閱讀全文
2008-01-06 19:04 作者: canonical【評論:3】【閱讀:3177】
高性能分頁標(biāo)簽extremeTable的Limit設(shè)計架構(gòu)思想剖析
摘要: 這是一個目前最好的一個開源分頁標(biāo)簽的實現(xiàn)---extremeTable標(biāo)簽。今天談?wù)勊腖imit的設(shè)計架構(gòu)思想。 這個設(shè)計很通用,經(jīng)過作者的多次重構(gòu),現(xiàn)在extremeTable的架構(gòu)非常漂亮。這個標(biāo)簽現(xiàn)在缺點是有些參數(shù)對mvc控制器屏蔽了,應(yīng)提供一致的對外接口。不過整體上設(shè)計還是很精致的,面向?qū)ο髞硖幚?html元素,與spring非常的默契,非常便于開發(fā)和測試。 類圖關(guān)系... 閱讀全文
2007-12-26 16:17 作者: Asktalk【評論:5】【閱讀:4623】
Spring Web框架與Struts的區(qū)別
摘要: 下面是從struts的角度來談?wù)剆pring自帶的web框架的使用。 當(dāng)然,我們在配置web框架前,需要把spring配置好,這里就不多說了。 1.web框架核心servlet在web.xml中的配置。 1<servlet> 2<servlet-name>Dispatcher&... 閱讀全文
2007-12-25 02:23 作者: Asktalk【評論:0】【閱讀:4338】
Eclipse啟動機制(1)
摘要: 最近我一直在研究Eclipse的架構(gòu)體系,下面我們就來看看Eclipse的啟動機制吧 1、Eclipse源代碼 eclipse-sourceBuild-srcIncluded-3.3.1.1.zip 版本:3.3.1.1 &... 閱讀全文
2007-12-22 16:33 作者: Asktalk【評論:3】【閱讀:4917】
代碼之外的結(jié)構(gòu)
摘要: 我在各種場合一直都在強調(diào)結(jié)構(gòu)問題是獨立的,在程序語言之外存在著獨立的,可研究的,富有成效的結(jié)構(gòu)問題。http://canonical.javaeye.com/blog/147424 在這個方向上更進一步,我們注意到所有的代碼并不是天然出現(xiàn)的,而是由人所編制的,因此代碼世界內(nèi)部并不構(gòu)成封閉的,自足的某個世界。代碼中的結(jié)構(gòu)問題并不是由代碼本身完全解決的,即在代碼之... 閱讀全文
2007-12-15 19:46 作者: canonical【評論:0】【閱讀:1418】
關(guān)于抽象性的一些說明
摘要: 沒有人否認(rèn)抽象的意義,但是抽象是否就是抽象到無窮大,這是個可以明確定義的問題,也是數(shù)學(xué)領(lǐng)域正在解決的問題。在我們的思考中沒有明確定義何處是邊界, 沒有明確的限制,這便是導(dǎo)向無窮的一種思維方式,它和現(xiàn)實中是否真的允許消耗無限多的資源,創(chuàng)建無限多的對象無關(guān)。當(dāng)我們認(rèn)為自己明白了終極的意義,明白 了一種推向無窮的抽象,這并不是理解了世界的全部,我們?nèi)匀灰靼兹绾?.. 閱讀全文
2007-12-09 22:25 作者: canonical【評論:5】【閱讀:1205】
關(guān)于語言有效性的一些澄清
摘要: 數(shù)學(xué)上的有效性與物理中的有效性是不同的,例如對于密碼學(xué)問題,如果通過窮舉法破解密碼成功時,經(jīng)過這些密碼加密的數(shù)據(jù)已經(jīng)過了有效期限,此時我們在數(shù)學(xué)上定義窮舉法不是一種有效的破解方法。但是物理層面上我們說只要一種方法比另一種方法能夠更快的解決問題,我們就說第一種方法比第二種方法有效,而無論密碼被破解的時候該密碼是否已經(jīng)過了有效期限。 ... 閱讀全文
2007-12-09 17:19 作者: canonical【評論:1】【閱讀:1377】
關(guān)于通用語言能力的一些澄清
摘要: 我在前面的文章中列舉了大量物理學(xué)相關(guān)的例子來試圖說明采用物理視角的必要性,但是可能因為物理事實大家不熟悉,結(jié)果直接被無視了. 在本文中我想有必要舉一個軟件領(lǐng)域的例子。只是在實際思考的過程中,我主要還是基于物理概念進行推理. 首先我所謂“現(xiàn)在的通用語言”,它... 閱讀全文
2007-12-09 00:16 作者: canonical【評論:0】【閱讀:1214】
對語言與結(jié)構(gòu)的說明
摘要: 每當(dāng)我在文字中對函數(shù)式語言有些不敬之意時,便好像動了某些人的奶酪,以至我的言辭總在被曲解后遭到排斥。我想這就是因為視角差異過大所造成的. 但是謙虛謹(jǐn)慎是傳統(tǒng)的美德, 不能容納他人的觀點只會妨礙自己在某些方向的探索。 首先請不要輕易懷疑我的知識水平。當(dāng)然如果總無法聚集起足夠的注意力來理解別人話語中的細節(jié),我也無話可說。 ... 閱讀全文
2007-12-08 02:51 作者: canonical【評論:7】【閱讀:1449】